package main.java.aplicacion.usuarios.entidades;

import java.util.Calendar;
import java.util.Date;

import main.java.datatypes.usuarios.UsuarioVO;

public abstract class Usuario {

	private String nick;
	private String mail;
	private String nombre;
	private String apellido;
	private Date fechaNacimiento;
	private int edad;
	private String contrasena;
	private String nomImagen;
	
	
	public Usuario(UsuarioVO usuarioVO){
		this.nick = usuarioVO.getNick();
		this.mail = usuarioVO.getMail();
		this.nombre = usuarioVO.getNombre();
		this.apellido = usuarioVO.getApellido();
		this.fechaNacimiento = usuarioVO.getFechaNacimiento();
		this.edad = usuarioVO.getEdad();
		this.nomImagen = usuarioVO.getImagen();	
		this.contrasena = usuarioVO.getContrasena();
	}
	
//	public UsuarioVO toUsuarioVO(){
//		UsuarioVO dtUsuario = new UsuarioVO();
//		dtUsuario.setNick(this.nick);
//		dtUsuario.setMail(this.mail);
//		dtUsuario.setNombre(this.nombre);
//		dtUsuario.setApellido(this.apellido);
//		dtUsuario.setFechaNacimiento(this.fechaNacimiento);
//		dtUsuario.setEdad(this.edad );
//		dtUsuario.setImagen(this.nomImagen);	
//		return dtUsuario;
//	}
	
	public String getNick() {
		return nick;
	}
	public void setNick(String nick) {
		this.nick = nick;
	}
	public String getMail() {
		return mail;
	}
	public void setMail(String mail) {
		this.mail = mail;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getApellido() {
		return apellido;
	}
	public void setApellido(String apellido) {
		this.apellido = apellido;
	}
	public Date getFechaNacimiento() {
		return fechaNacimiento;
	}
	public void setFechaNacimiento(Date fechaNacimiento) {
		this.fechaNacimiento = fechaNacimiento;
	}
	public int getEdad() {
		Calendar now = Calendar.getInstance();
		Calendar dob = Calendar.getInstance();
		dob.setTime(fechaNacimiento);
		int edadCalc = now.get(Calendar.YEAR) - dob.get(Calendar.YEAR); 		
		dob.set(Calendar.YEAR, now.get(Calendar.YEAR));
		if(now.compareTo(dob) <= 0)
			edadCalc--;
		return edadCalc;
	}
	public void setEdad(int edad) {
		this.edad = edad;
	}
	public String getImagen() {
		return nomImagen;
	}
	public void setImagen(String imagen) {
		this.nomImagen = imagen;
	}

	public void setContrasena(String contrasena) {
		this.contrasena = contrasena;
	}

	public String getContrasena() {
		return contrasena;
	}
		
}